home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume27 / dmake / part40 < prev    next >
Encoding:
Text File  |  1992-01-29  |  40.0 KB  |  1,254 lines

  1. Newsgroups: comp.sources.misc
  2. From: dvadura@plg.waterloo.edu (Dennis Vadura)
  3. Subject:  v27i141:  dmake - dmake Version 3.8, Part40/41
  4. Message-ID: <1992Jan29.165357.2076@sparky.imd.sterling.com>
  5. X-Md4-Signature: a9da81007bb8e18a787c8dbd369450ec
  6. Date: Wed, 29 Jan 1992 16:53:57 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: dvadura@plg.waterloo.edu (Dennis Vadura)
  10. Posting-number: Volume 27, Issue 141
  11. Archive-name: dmake/part40
  12. Environment: Atari-ST, Coherent, Mac, MSDOS, OS/2, UNIX
  13. Supersedes: dmake: Volume 19, Issue 22-58
  14.  
  15. ---- Cut Here and feed the following to sh ----
  16. # this is dmake.shar.40 (part 40 of a multipart archive)
  17. # do not concatenate these parts, unpack them in order with /bin/sh
  18. # file dmake/unix/xenix/public.h continued
  19. #
  20. if test ! -r _shar_seq_.tmp; then
  21.     echo 'Please unpack part 1 first!'
  22.     exit 1
  23. fi
  24. (read Scheck
  25.  if test "$Scheck" != 40; then
  26.     echo Please unpack part "$Scheck" next!
  27.     exit 1
  28.  else
  29.     exit 0
  30.  fi
  31. ) < _shar_seq_.tmp || exit 1
  32. if test -f _shar_wnt_.tmp; then
  33. sed 's/^X//' << 'SHAR_EOF' >> 'dmake/unix/xenix/public.h' &&
  34. void Stat_target ANSI((CELLPTR, int));
  35. char * Expand ANSI((char *));
  36. char * Apply_edit ANSI((char *, char *, char *, int, int));
  37. void Map_esc ANSI((char *));
  38. char* Apply_modifiers ANSI((int, char *));
  39. char* Tokenize ANSI((char *, char *));
  40. char * _strjoin ANSI((char *, char *, int, int));
  41. char * _stradd ANSI((char *, char *, int));
  42. char * _strapp ANSI((char *, char *));
  43. char * _strdup ANSI((char *));
  44. char * _strdup2 ANSI((char *));
  45. char * _strpbrk ANSI((char *, char *));
  46. char * _strspn ANSI((char *, char *));
  47. char * _strstr ANSI((char *, char *));
  48. char * _substr ANSI((char *, char *));
  49. uint16 Hash ANSI((char *, uint32 *));
  50. HASHPTR Get_name ANSI((char *, HASHPTR *, int));
  51. HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
  52. HASHPTR Def_macro ANSI((char *, char *, int));
  53. CELLPTR Def_cell ANSI((char *));
  54. LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
  55. void Clear_prerequisites ANSI((CELLPTR));
  56. int Test_circle ANSI((CELLPTR, int));
  57. STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
  58. t_attr Rcp_attribute ANSI((char *));
  59. int main ANSI((int, char **));
  60. FILE * Openfile ANSI((char *, int, int));
  61. FILE * Closefile ANSI(());
  62. FILE * Search_file ANSI((char *, char **));
  63. char * Filename ANSI(());
  64. int Nestlevel ANSI(());
  65. void No_ram ANSI(());
  66. int Usage ANSI((int));
  67. int Version ANSI(());
  68. char * Get_suffix ANSI((char *));
  69. char * Build_path ANSI((char *, char *));
  70. void Make_rules ANSI(());
  71. void Create_macro_vars ANSI(());
  72. time_t Do_stat ANSI((char *, char *, char **));
  73. int Do_touch ANSI((char *, char *, char **));
  74. void Void_lib_cache ANSI((char *, char *));
  75. time_t Do_time ANSI(());
  76. int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
  77. char ** Pack_argv ANSI((int, int, char *));
  78. char * Read_env_string ANSI((char *));
  79. int Write_env_string ANSI((char *, char *));
  80. void ReadEnvironment ANSI(());
  81. void Catch_signals ANSI((void (*)()));
  82. void Clear_signals ANSI(());
  83. void Prolog ANSI((int, char* []));
  84. void Epilog ANSI((int));
  85. char * Get_current_dir ANSI(());
  86. int Set_dir ANSI((char*));
  87. char Get_switch_char ANSI(());
  88. FILE* Get_temp ANSI((char **, char *, int));
  89. FILE * Start_temp ANSI((char *, CELLPTR, char **));
  90. void Open_temp_error ANSI((char *, char *));
  91. void Link_temp ANSI((CELLPTR, FILE *, char *));
  92. void Close_temp ANSI((CELLPTR, FILE *));
  93. void Unlink_temp_files ANSI((CELLPTR));
  94. void Handle_result ANSI((int, int, int, CELLPTR));
  95. void Update_time_stamp ANSI((CELLPTR));
  96. int Remove_file ANSI((char *));
  97. void Parse ANSI((FILE *));
  98. int Get_line ANSI((char *, FILE *));
  99. char * Do_comment ANSI((char *, char **, int));
  100. char * Get_token ANSI((TKSTRPTR, char *, int));
  101. void Quit ANSI(());
  102. void Read_state ANSI(());
  103. void Write_state ANSI(());
  104. int Check_state ANSI((CELLPTR, STRINGPTR *, int));
  105. char* basename ANSI((char *));
  106. void Dump ANSI(());
  107. void Dump_recipe ANSI((STRINGPTR));
  108. int Parse_macro ANSI((char *, int));
  109. int Macro_op ANSI((char *));
  110. int Parse_rule_def ANSI((int *));
  111. int Rule_op ANSI((char *));
  112. void Add_recipe_to_list ANSI((char *, int, int));
  113. void Bind_rules_to_targets ANSI((int));
  114. int Set_group_attributes ANSI((char *));
  115. DFALINKPTR Match_dfa ANSI((char *));
  116. void Check_circle_dfa ANSI(());
  117. void Add_nfa ANSI((char *));
  118. char * Exec_function ANSI((char *));
  119. time_t seek_arch ANSI((char *, char *));
  120. int If_root_path ANSI((char *));
  121. void Remove_prq ANSI((CELLPTR));
  122. int runargv ANSI((CELLPTR, int, int, int, int, char *));
  123. int Wait_for_child ANSI((int, int));
  124. void Clean_up_processes ANSI(());
  125. X
  126. #endif
  127. SHAR_EOF
  128. chmod 0640 dmake/unix/xenix/public.h ||
  129. echo 'restore of dmake/unix/xenix/public.h failed'
  130. Wc_c="`wc -c < 'dmake/unix/xenix/public.h'`"
  131. test 5448 -eq "$Wc_c" ||
  132.     echo 'dmake/unix/xenix/public.h: original size 5448, current size' "$Wc_c"
  133. rm -f _shar_wnt_.tmp
  134. fi
  135. # ============= dmake/unix/xenix/pwd/config.mk ==============
  136. if test ! -d 'dmake/unix/xenix/pwd'; then
  137.     mkdir 'dmake/unix/xenix/pwd'
  138. fi
  139. if test -f 'dmake/unix/xenix/pwd/config.mk' -a X"$1" != X"-c"; then
  140.     echo 'x - skipping dmake/unix/xenix/pwd/config.mk (File already exists)'
  141.     rm -f _shar_wnt_.tmp
  142. else
  143. > _shar_wnt_.tmp
  144. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/pwd/config.mk' &&
  145. # This is the Sys VR3 PWD configuration file.  It configures SysvR3 unix
  146. # versions of dmake to use a provided version of getcwd rather than the
  147. # standard library version that uses popen to capture the output of pwd.
  148. #
  149. X
  150. osredir := $(OS)$(DIRSEPSTR)$(OSRELEASE)$(DIRSEPSTR)$(OSENVIRONMENT)
  151. X
  152. # The following are required sources
  153. OSRESRC := getcwd.c
  154. X
  155. .IF $(OSRESRC)
  156. X   SRC    += $(OSRESRC)
  157. X   .SETDIR=$(osredir) : $(OSRESRC)
  158. .END
  159. X
  160. .SOURCE.h : $(osredir)
  161. X
  162. # Local configuration modifications for CFLAGS, there's local SysV includes
  163. # too.
  164. CFLAGS += -I$(osredir)
  165. X
  166. # Xenix needs -lx in order to link successfully.
  167. LDLIBS += -lx
  168. SHAR_EOF
  169. chmod 0640 dmake/unix/xenix/pwd/config.mk ||
  170. echo 'restore of dmake/unix/xenix/pwd/config.mk failed'
  171. Wc_c="`wc -c < 'dmake/unix/xenix/pwd/config.mk'`"
  172. test 623 -eq "$Wc_c" ||
  173.     echo 'dmake/unix/xenix/pwd/config.mk: original size 623, current size' "$Wc_c"
  174. rm -f _shar_wnt_.tmp
  175. fi
  176. # ============= dmake/unix/xenix/pwd/getcwd.c ==============
  177. if test -f 'dmake/unix/xenix/pwd/getcwd.c' -a X"$1" != X"-c"; then
  178.     echo 'x - skipping dmake/unix/xenix/pwd/getcwd.c (File already exists)'
  179.     rm -f _shar_wnt_.tmp
  180. else
  181. > _shar_wnt_.tmp
  182. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/pwd/getcwd.c' &&
  183. /*
  184. X    getcwd -- get pathname of current working directory
  185. X
  186. X    public-domain implementation
  187. X
  188. X    last edit:    03-Nov-1990    Gwyn@BRL.MIL
  189. X
  190. X    complies with the following standards:
  191. X        IEEE Std 1003.1-1988
  192. X        SVID Issue 3
  193. X        X/Open Portability Guide Issue 2 (when "XPG2" is defined)
  194. X        X/Open Portability Guide Issue 3
  195. X
  196. X    This implementation of getcwd() can be used to replace the UNIX
  197. X    System V library routine (which uses popen() to capture the output of
  198. X    the "pwd" command).  Once that is done, "pwd" can be reimplemented as
  199. X    just puts(getcwd((char*)0,0)), assuming "XPG2" is defined below.
  200. X
  201. X    This implementation depends on every directory having entries for
  202. X    "." and "..".  It also depends on the internals of the <dirent.h>
  203. X    data structures to some degree.
  204. X
  205. X    I considered using chdir() to ascend the hierarchy, followed by a
  206. X    final chdir() to the path being returned by getcwd() to restore the
  207. X    location, but decided that error recovery was too difficult that way.
  208. X    The algorithm I settled on was inspired by my rewrite of the "pwd"
  209. X    utility, combined with the dotdots[] array trick from the SVR2 shell.
  210. */
  211. #define XPG2    /* define to support obsolete XPG2-mandated feature */
  212. X
  213. X
  214. #include    <sys/types.h>
  215. #include    <sys/stat.h>
  216. X
  217. #ifdef M_XENIX
  218. # include        <sys/ndir.h>
  219. # define dirent direct
  220. #else
  221. # include        <dirent.h>
  222. #endif
  223. X
  224. #include    <errno.h>
  225. #include    <string.h>
  226. X
  227. typedef char    *pointer;        /* (void *) if you have it */
  228. X
  229. extern void    free();
  230. extern pointer    malloc();
  231. extern int    fstat(), stat();
  232. X
  233. extern int    errno;            /* normally done by <errno.h> */
  234. X
  235. #ifndef NULL
  236. #define    NULL    0            /* amorphous null pointer constant */
  237. #endif
  238. X
  239. #ifndef NAME_MAX
  240. #define    NAME_MAX    255        /* maximum directory entry size */
  241. #endif
  242. X
  243. X
  244. char    *
  245. getcwd( buf, size )            /* returns pointer to CWD pathname */
  246. X    char        *buf;        /* where to put name (NULL to malloc) */
  247. X    int        size;        /* size of buf[] or malloc()ed memory */
  248. X    {
  249. X    static char    dotdots[] =
  250. "../../../../../../../../../../../../../../../../../../../../../../../../../..";
  251. X    char        *dotdot;    /* -> dotdots[.], right to left */
  252. X    DIR        *dirp;        /* -> parent directory stream */
  253. X    struct dirent    *dir;        /* -> directory entry */
  254. X    struct stat    stat1,
  255. X            stat2;        /* info from stat() */
  256. X    struct stat    *d = &stat1;    /* -> info about "." */
  257. X    struct stat    *dd = &stat2;    /* -> info about ".." */
  258. X    register char    *buffer;    /* local copy of buf, or malloc()ed */
  259. X    char        *bufend;    /* -> buffer[size] */
  260. X    register char    *endp;        /* -> end of reversed string */
  261. X    register char    *dname;        /* entry name ("" for root) */
  262. X    int        serrno = errno;    /* save entry errno */
  263. X
  264. X    if ( buf != NULL && size <= 0
  265. #ifndef XPG2
  266. X      || buf == NULL
  267. #endif
  268. X       )    {
  269. X        errno = EINVAL;        /* invalid argument */
  270. X        return NULL;
  271. X        }
  272. X
  273. X    buffer = buf;
  274. #ifdef XPG2
  275. X    if ( buf == NULL        /* wants us to malloc() the string */
  276. X      && (buffer = (char *) malloc( (unsigned) size )) == NULL
  277. X    /* XXX -- actually should probably not pay attention to "size" arg */
  278. X       )    {
  279. X        errno = ENOMEM;        /* cannot malloc() specified size */
  280. X        return NULL;
  281. X        }
  282. #endif
  283. X
  284. X    if ( stat( ".", dd ) != 0 )    /* prime the pump */
  285. X        goto error;        /* errno already set */
  286. X
  287. X    endp = buffer;            /* initially, empty string */
  288. X    bufend = &buffer[size];
  289. X
  290. X    for ( dotdot = &dotdots[sizeof dotdots]; dotdot != dotdots; )
  291. X        {
  292. X        dotdot -= 3;        /* include one more "/.." section */
  293. X                    /* (first time is actually "..") */
  294. X
  295. X        /* swap stat() info buffers */
  296. X        {
  297. X        register struct stat    *temp = d;
  298. X
  299. X        d = dd;            /* new current dir is old parent dir */
  300. X        dd = temp;
  301. X        }
  302. X
  303. X        if ( (dirp = opendir( dotdot )) == NULL )    /* new parent */
  304. X            goto error;    /* errno already set */
  305. X
  306. X        if ( fstat( dirp->dd_fd, dd ) != 0 )
  307. X            {
  308. X            serrno = errno;    /* set by fstat() */
  309. X            (void)closedir( dirp );
  310. X            errno = serrno;    /* in case closedir() clobbered it */
  311. X            goto error;
  312. X            }
  313. X
  314. X        if ( d->st_dev == dd->st_dev )
  315. X            {        /* not crossing a mount point */
  316. X            if ( d->st_ino == dd->st_ino )
  317. X                {    /* root directory */
  318. X                dname = "";
  319. X                goto append;
  320. X                }
  321. X
  322. X            do
  323. X                if ( (dir = readdir( dirp )) == NULL )
  324. X                    {
  325. X                    (void)closedir( dirp );
  326. X                    errno = ENOENT;    /* missing entry */
  327. X                    goto error;
  328. X                    }
  329. X            while ( dir->d_ino != d->st_ino );
  330. X            }
  331. X        else    {        /* crossing a mount point */
  332. X            struct stat    t;    /* info re. test entry */
  333. X            char        name[sizeof dotdots + 1 + NAME_MAX];
  334. X
  335. X            (void)strcpy( name, dotdot );
  336. X            dname = &name[strlen( name )];
  337. X            *dname++ = '/';
  338. X
  339. X            do    {
  340. X                if ( (dir = readdir( dirp )) == NULL )
  341. X                    {
  342. X                    (void)closedir( dirp );
  343. X                    errno = ENOENT;    /* missing entry */
  344. X                    goto error;
  345. X                    }
  346. X
  347. X                (void)strcpy( dname, dir->d_name );
  348. X                /* must fit if NAME_MAX is not a lie */
  349. X                }
  350. X            while ( stat( name, &t ) != 0
  351. X                 || t.st_ino != d->st_ino
  352. X                 || t.st_dev != d->st_dev
  353. X                  );
  354. X            }
  355. X
  356. X        dname = dir->d_name;
  357. X
  358. X        /* append "/" and reversed dname string onto buffer */
  359. X    append:
  360. X        if ( endp != buffer    /* avoid trailing / in final name */
  361. X          || dname[0] == '\0'    /* but allow "/" when CWD is root */
  362. X           )
  363. X            *endp++ = '/';
  364. X
  365. X        {
  366. X        register char    *app;    /* traverses dname string */
  367. X
  368. X        for ( app = dname; *app != '\0'; ++app )
  369. X            ;
  370. X
  371. X        if ( app - dname >= bufend - endp )
  372. X            {
  373. X            (void)closedir( dirp );
  374. X            errno = ERANGE;    /* won't fit allotted space */
  375. X            goto error;
  376. X            }
  377. X
  378. X        while ( app != dname )
  379. X            *endp++ = *--app;
  380. X        }
  381. X
  382. X        (void)closedir( dirp );
  383. X
  384. X        if ( dname[0] == '\0' )    /* reached root; wrap it up */
  385. X            {
  386. X            register char    *startp;    /* -> buffer[.] */
  387. X
  388. X            *endp = '\0';    /* plant null terminator */
  389. X
  390. X            /* straighten out reversed pathname string */
  391. X            for ( startp = buffer; --endp > startp; ++startp )
  392. X                {
  393. X                char    temp = *endp;
  394. X
  395. X                *endp = *startp;
  396. X                *startp = temp;
  397. X                }
  398. X
  399. X            errno = serrno;    /* restore entry errno */
  400. X            /* XXX -- if buf==NULL, realloc here? */
  401. X            return buffer;
  402. X            }
  403. X        }
  404. X
  405. X    errno = ENOMEM;            /* actually, algorithm failure */
  406. X
  407. X    error:
  408. X    if ( buf == NULL )
  409. X        free( (pointer)buffer );
  410. X
  411. X    return NULL;
  412. X    }
  413. X
  414. SHAR_EOF
  415. chmod 0640 dmake/unix/xenix/pwd/getcwd.c ||
  416. echo 'restore of dmake/unix/xenix/pwd/getcwd.c failed'
  417. Wc_c="`wc -c < 'dmake/unix/xenix/pwd/getcwd.c'`"
  418. test 5834 -eq "$Wc_c" ||
  419.     echo 'dmake/unix/xenix/pwd/getcwd.c: original size 5834, current size' "$Wc_c"
  420. rm -f _shar_wnt_.tmp
  421. fi
  422. # ============= dmake/unix/xenix/pwd/make.sh ==============
  423. if test -f 'dmake/unix/xenix/pwd/make.sh' -a X"$1" != X"-c"; then
  424.     echo 'x - skipping dmake/unix/xenix/pwd/make.sh (File already exists)'
  425.     rm -f _shar_wnt_.tmp
  426. else
  427. > _shar_wnt_.tmp
  428. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/pwd/make.sh' &&
  429. mkdir objects
  430. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O infer.c
  431. mv infer.o objects
  432. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O make.c
  433. mv make.o objects
  434. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O stat.c
  435. mv stat.o objects
  436. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O expand.c
  437. mv expand.o objects
  438. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O dmstring.c
  439. mv dmstring.o objects
  440. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O hash.c
  441. mv hash.o objects
  442. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O dag.c
  443. mv dag.o objects
  444. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O dmake.c
  445. mv dmake.o objects
  446. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O path.c
  447. mv path.o objects
  448. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O imacs.c
  449. mv imacs.o objects
  450. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O sysintf.c
  451. mv sysintf.o objects
  452. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O parse.c
  453. mv parse.o objects
  454. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O getinp.c
  455. mv getinp.o objects
  456. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O quit.c
  457. mv quit.o objects
  458. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O state.c
  459. mv state.o objects
  460. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O basename.c
  461. mv basename.o objects
  462. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O dmdump.c
  463. mv dmdump.o objects
  464. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O macparse.c
  465. mv macparse.o objects
  466. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O rulparse.c
  467. mv rulparse.o objects
  468. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O percent.c
  469. mv percent.o objects
  470. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O function.c
  471. mv function.o objects
  472. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O unix/arlib.c
  473. mv arlib.o objects
  474. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O unix/dirbrk.c
  475. mv dirbrk.o objects
  476. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O unix/rmprq.c
  477. mv rmprq.o objects
  478. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O unix/ruletab.c
  479. mv ruletab.o objects
  480. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O unix/runargv.c
  481. mv runargv.o objects
  482. cc -c -I. -Iunix -Iunix/xenix -DM_XENIX -Iunix/xenix/pwd -O unix/xenix/pwd/getcwd.c
  483. mv getcwd.o objects
  484. cc  -o dmake  objects/infer.o objects/make.o objects/stat.o objects/expand.o objects/dmstring.o objects/hash.o objects/dag.o objects/dmake.o objects/path.o objects/imacs.o objects/sysintf.o objects/parse.o objects/getinp.o objects/quit.o objects/state.o objects/basename.o objects/dmdump.o objects/macparse.o objects/rulparse.o objects/percent.o objects/function.o objects/arlib.o objects/dirbrk.o objects/rmprq.o objects/ruletab.o objects/runargv.o objects/getcwd.o -lx 
  485. cp unix/xenix/pwd/startup.mk startup.mk
  486. SHAR_EOF
  487. chmod 0640 dmake/unix/xenix/pwd/make.sh ||
  488. echo 'restore of dmake/unix/xenix/pwd/make.sh failed'
  489. Wc_c="`wc -c < 'dmake/unix/xenix/pwd/make.sh'`"
  490. test 2957 -eq "$Wc_c" ||
  491.     echo 'dmake/unix/xenix/pwd/make.sh: original size 2957, current size' "$Wc_c"
  492. rm -f _shar_wnt_.tmp
  493. fi
  494. # ============= dmake/unix/xenix/pwd/public.h ==============
  495. if test -f 'dmake/unix/xenix/pwd/public.h' -a X"$1" != X"-c"; then
  496.     echo 'x - skipping dmake/unix/xenix/pwd/public.h (File already exists)'
  497.     rm -f _shar_wnt_.tmp
  498. else
  499. > _shar_wnt_.tmp
  500. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/pwd/public.h' &&
  501. /* RCS      -- $Header$
  502. -- WARNING  -- This file is AUTOMATICALLY GENERATED DO NOT EDIT IT
  503. --
  504. -- SYNOPSIS -- Local functions exported to be visible by others.
  505. --
  506. -- DESCRIPTION
  507. --      This file is generated by 'genpub'.  Function declarations
  508. --      that appear in this file are extracted by 'genpub' from
  509. --      source files.  Any function in the source file whose definition
  510. --      appears like:
  511. --
  512. --          PUBLIC return_type
  513. --          function( arg_list );
  514. --          type_expr1 arg1;
  515. --          ...
  516. --
  517. --      has its definition extracted and a line of the form:
  518. --
  519. --          return_type function ANSI((type_expr1,type_expr2,...));
  520. --
  521. --      entered into the output file.
  522. --
  523. -- AUTHOR
  524. --      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  525. --      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  526. --
  527. -- COPYRIGHT
  528. --      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  529. -- 
  530. --      This program is free software; you can redistribute it and/or
  531. --      modify it under the terms of the GNU General Public License
  532. --      (version 1), as published by the Free Software Foundation, and
  533. --      found in the file 'LICENSE' included with this distribution.
  534. -- 
  535. --      This program is distributed in the hope that it will be useful,
  536. --      but WITHOUT ANY WARRANTY; without even the implied warrant of
  537. --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  538. --      GNU General Public License for more details.
  539. -- 
  540. --      You should have received a copy of the GNU General Public License
  541. --      along with this program;  if not, write to the Free Software
  542. --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  543. --
  544. -- LOG
  545. --     $Log$
  546. */
  547. X
  548. #ifndef _DMAKE_PUBLIC_h
  549. #define _DMAKE_PUBLIC_h
  550. X
  551. void Infer_recipe ANSI((CELLPTR, CELLPTR));
  552. int Make_targets ANSI(());
  553. int Exec_commands ANSI((CELLPTR));
  554. void Print_cmnd ANSI((char *, int, int));
  555. void Pop_dir ANSI((int));
  556. void Append_line ANSI((char *, int, FILE *, char *, int, int));
  557. void Stat_target ANSI((CELLPTR, int));
  558. char * Expand ANSI((char *));
  559. char * Apply_edit ANSI((char *, char *, char *, int, int));
  560. void Map_esc ANSI((char *));
  561. char* Apply_modifiers ANSI((int, char *));
  562. char* Tokenize ANSI((char *, char *));
  563. char * _strjoin ANSI((char *, char *, int, int));
  564. char * _stradd ANSI((char *, char *, int));
  565. char * _strapp ANSI((char *, char *));
  566. char * _strdup ANSI((char *));
  567. char * _strdup2 ANSI((char *));
  568. char * _strpbrk ANSI((char *, char *));
  569. char * _strspn ANSI((char *, char *));
  570. char * _strstr ANSI((char *, char *));
  571. char * _substr ANSI((char *, char *));
  572. uint16 Hash ANSI((char *, uint32 *));
  573. HASHPTR Get_name ANSI((char *, HASHPTR *, int));
  574. HASHPTR Search_table ANSI((HASHPTR *, char *, uint16 *, uint32 *));
  575. HASHPTR Def_macro ANSI((char *, char *, int));
  576. CELLPTR Def_cell ANSI((char *));
  577. LINKPTR Add_prerequisite ANSI((CELLPTR, CELLPTR, int, int));
  578. void Clear_prerequisites ANSI((CELLPTR));
  579. int Test_circle ANSI((CELLPTR, int));
  580. STRINGPTR Def_recipe ANSI((char *, STRINGPTR, int, int));
  581. t_attr Rcp_attribute ANSI((char *));
  582. int main ANSI((int, char **));
  583. FILE * Openfile ANSI((char *, int, int));
  584. FILE * Closefile ANSI(());
  585. FILE * Search_file ANSI((char *, char **));
  586. char * Filename ANSI(());
  587. int Nestlevel ANSI(());
  588. void No_ram ANSI(());
  589. int Usage ANSI((int));
  590. int Version ANSI(());
  591. char * Get_suffix ANSI((char *));
  592. char * Build_path ANSI((char *, char *));
  593. void Make_rules ANSI(());
  594. void Create_macro_vars ANSI(());
  595. time_t Do_stat ANSI((char *, char *, char **));
  596. int Do_touch ANSI((char *, char *, char **));
  597. void Void_lib_cache ANSI((char *, char *));
  598. time_t Do_time ANSI(());
  599. int Do_cmnd ANSI((char *, int, int, CELLPTR, int, int, int));
  600. char ** Pack_argv ANSI((int, int, char *));
  601. char * Read_env_string ANSI((char *));
  602. int Write_env_string ANSI((char *, char *));
  603. void ReadEnvironment ANSI(());
  604. void Catch_signals ANSI((void (*)()));
  605. void Clear_signals ANSI(());
  606. void Prolog ANSI((int, char* []));
  607. void Epilog ANSI((int));
  608. char * Get_current_dir ANSI(());
  609. int Set_dir ANSI((char*));
  610. char Get_switch_char ANSI(());
  611. FILE* Get_temp ANSI((char **, char *, int));
  612. FILE * Start_temp ANSI((char *, CELLPTR, char **));
  613. void Open_temp_error ANSI((char *, char *));
  614. void Link_temp ANSI((CELLPTR, FILE *, char *));
  615. void Close_temp ANSI((CELLPTR, FILE *));
  616. void Unlink_temp_files ANSI((CELLPTR));
  617. void Handle_result ANSI((int, int, int, CELLPTR));
  618. void Update_time_stamp ANSI((CELLPTR));
  619. int Remove_file ANSI((char *));
  620. void Parse ANSI((FILE *));
  621. int Get_line ANSI((char *, FILE *));
  622. char * Do_comment ANSI((char *, char **, int));
  623. char * Get_token ANSI((TKSTRPTR, char *, int));
  624. void Quit ANSI(());
  625. void Read_state ANSI(());
  626. void Write_state ANSI(());
  627. int Check_state ANSI((CELLPTR, STRINGPTR *, int));
  628. char* basename ANSI((char *));
  629. void Dump ANSI(());
  630. void Dump_recipe ANSI((STRINGPTR));
  631. int Parse_macro ANSI((char *, int));
  632. int Macro_op ANSI((char *));
  633. int Parse_rule_def ANSI((int *));
  634. int Rule_op ANSI((char *));
  635. void Add_recipe_to_list ANSI((char *, int, int));
  636. void Bind_rules_to_targets ANSI((int));
  637. int Set_group_attributes ANSI((char *));
  638. DFALINKPTR Match_dfa ANSI((char *));
  639. void Check_circle_dfa ANSI(());
  640. void Add_nfa ANSI((char *));
  641. char * Exec_function ANSI((char *));
  642. time_t seek_arch ANSI((char *, char *));
  643. int If_root_path ANSI((char *));
  644. void Remove_prq ANSI((CELLPTR));
  645. int runargv ANSI((CELLPTR, int, int, int, int, char *));
  646. int Wait_for_child ANSI((int, int));
  647. void Clean_up_processes ANSI(());
  648. X
  649. #endif
  650. SHAR_EOF
  651. chmod 0640 dmake/unix/xenix/pwd/public.h ||
  652. echo 'restore of dmake/unix/xenix/pwd/public.h failed'
  653. Wc_c="`wc -c < 'dmake/unix/xenix/pwd/public.h'`"
  654. test 5448 -eq "$Wc_c" ||
  655.     echo 'dmake/unix/xenix/pwd/public.h: original size 5448, current size' "$Wc_c"
  656. rm -f _shar_wnt_.tmp
  657. fi
  658. # ============= dmake/unix/xenix/pwd/startup.mk ==============
  659. if test -f 'dmake/unix/xenix/pwd/startup.mk' -a X"$1" != X"-c"; then
  660.     echo 'x - skipping dmake/unix/xenix/pwd/startup.mk (File already exists)'
  661.     rm -f _shar_wnt_.tmp
  662. else
  663. > _shar_wnt_.tmp
  664. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/pwd/startup.mk' &&
  665. # Generic UNIX DMAKE startup file.  Customize to suit your needs.
  666. # Should work for both SYSV, and BSD 4.3
  667. # See the documentation for a description of internally defined macros.
  668. #
  669. # Disable warnings for macros redefined here that were given
  670. # on the command line.
  671. __.SILENT := $(.SILENT)
  672. .SILENT   := yes
  673. X
  674. # Configuration parameters for DMAKE startup.mk file
  675. # Set these to NON-NULL if you wish to turn the parameter on.
  676. _HAVE_RCS    := yes        # yes => RCS  is installed.
  677. _HAVE_SCCS    := yes        # yes => SCCS is installed.
  678. X
  679. # Applicable suffix definitions
  680. A := .a        # Libraries
  681. E :=        # Executables
  682. F := .f        # Fortran
  683. O := .o        # Objects
  684. P := .p        # Pascal
  685. S := .s        # Assembler sources
  686. V := ,v        # RCS suffix
  687. X
  688. # Recipe execution configurations
  689. SHELL        := /bin/sh
  690. SHELLFLAGS    := -ce
  691. GROUPSHELL    := $(SHELL)
  692. GROUPFLAGS    := 
  693. SHELLMETAS    := |();&<>?*][$$:\\#`'"
  694. GROUPSUFFIX    :=
  695. DIVFILE         = $(TMPFILE)
  696. X
  697. # Standard C-language command names and flags
  698. X   CPP       := /lib/cpp        # C-preprocessor
  699. X   CC      := cc        # C-compiler and flags
  700. X   CFLAGS  +=
  701. X
  702. X   AS      := as        # Assembler and flags
  703. X   ASFLAGS += 
  704. X
  705. X   LD       = $(CC)        # Loader and flags
  706. X   LDFLAGS +=
  707. X   LDLIBS   =
  708. X
  709. # Definition of $(MAKE) macro for recursive makes.
  710. X   MAKE = $(MAKECMD) $(MFLAGS)
  711. X
  712. # Definition of Print command for this system.
  713. X   PRINT = lpr
  714. X
  715. # Language and Parser generation Tools and their flags
  716. X   YACC      := yacc        # standard yacc
  717. X   YFLAGS +=
  718. X   YTAB      := y.tab        # yacc output files name stem.
  719. X
  720. X   LEX      := lex        # standard lex
  721. X   LFLAGS +=
  722. X   LEXYY  := lex.yy        # lex output file
  723. X
  724. # Other Compilers, Tools and their flags
  725. X   PC    := pc            # pascal compiler
  726. X   RC    := f77            # ratfor compiler
  727. X   FC    := f77            # fortran compiler
  728. X
  729. X   CO       := co        # check out for RCS
  730. X   COFLAGS += -q
  731. X
  732. X   AR     := ar            # archiver
  733. X   ARFLAGS+= ruv
  734. X
  735. X   RM       := /bin/rm        # remove a file command
  736. X   RMFLAGS +=
  737. X
  738. # Implicit generation rules for making inferences.
  739. # We don't provide .yr or .ye rules here.  They're obsolete.
  740. # Rules for making *$O
  741. X   %$O : %.c ; $(CC) $(CFLAGS) -c $<
  742. X   %$O : %$P ; $(PC) $(PFLAGS) -c $<
  743. X   %$O : %$S ; $(AS) $(ASFLAGS) $<
  744. X   %$O : %.cl ; class -c $<
  745. X   %$O : %.e %.r %.F %$F
  746. X    $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
  747. X
  748. # Executables
  749. X   %$E : %$O ; $(LD) $(LDFLAGS) -o $@ $< $(LDLIBES)
  750. X
  751. # lex and yacc rules
  752. X   %.c : %.y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
  753. X   %.c : %.l ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
  754. X
  755. # This rule tells how to make *.out from it's immediate list of prerequisites
  756. # UNIX only.
  757. X   %.out :; $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
  758. X
  759. # RCS support
  760. .IF $(_HAVE_RCS)
  761. X   % : %$V $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
  762. X   .NOINFER : %$V $$(@:d)RCS/$$(@:f)$V
  763. .END
  764. X
  765. # SCCS support
  766. .IF $(_HAVE_SCCS)
  767. X   % : s.% ; get $<
  768. X   .NOINFER : s.%
  769. .END
  770. X
  771. # Recipe to make archive files.
  772. %$A :
  773. [
  774. X   $(AR) $(ARFLAGS) $@ $?
  775. X   $(RM) $(RMFLAGS) $?
  776. X   ranlib $@
  777. ]
  778. X
  779. # DMAKE uses this recipe to remove intermediate targets
  780. .REMOVE :; $(RM) -f $<
  781. X
  782. # AUGMAKE extensions for SYSV compatibility
  783. @B = $(@:b)
  784. @D = $(@:d)
  785. @F = $(@:f)
  786. "*B" = $(*:b)
  787. "*D" = $(*:d)
  788. "*F" = $(*:f)
  789. <B = $(<:b)
  790. <D = $(<:d)
  791. <F = $(<:f)
  792. ?B = $(?:b)
  793. ?F = $(?:f)
  794. ?D = $(?:d)
  795. X
  796. # Turn warnings back to previous setting.
  797. .SILENT := $(__.SILENT)
  798. X
  799. # Local startup file if any
  800. .INCLUDE .IGNORE: "_startup.mk"
  801. SHAR_EOF
  802. chmod 0640 dmake/unix/xenix/pwd/startup.mk ||
  803. echo 'restore of dmake/unix/xenix/pwd/startup.mk failed'
  804. Wc_c="`wc -c < 'dmake/unix/xenix/pwd/startup.mk'`"
  805. test 3227 -eq "$Wc_c" ||
  806.     echo 'dmake/unix/xenix/pwd/startup.mk: original size 3227, current size' "$Wc_c"
  807. rm -f _shar_wnt_.tmp
  808. fi
  809. # ============= dmake/unix/xenix/startup.mk ==============
  810. if test -f 'dmake/unix/xenix/startup.mk' -a X"$1" != X"-c"; then
  811.     echo 'x - skipping dmake/unix/xenix/startup.mk (File already exists)'
  812.     rm -f _shar_wnt_.tmp
  813. else
  814. > _shar_wnt_.tmp
  815. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/startup.mk' &&
  816. # Generic UNIX DMAKE startup file.  Customize to suit your needs.
  817. # Should work for both SYSV, and BSD 4.3
  818. # See the documentation for a description of internally defined macros.
  819. #
  820. # Disable warnings for macros redefined here that were given
  821. # on the command line.
  822. __.SILENT := $(.SILENT)
  823. .SILENT   := yes
  824. X
  825. # Configuration parameters for DMAKE startup.mk file
  826. # Set these to NON-NULL if you wish to turn the parameter on.
  827. _HAVE_RCS    :=            # yes => RCS  is installed.
  828. _HAVE_SCCS    := yes        # yes => SCCS is installed.
  829. X
  830. # Applicable suffix definitions
  831. A := .a        # Libraries
  832. E :=        # Executables
  833. F := .f        # Fortran
  834. O := .o        # Objects
  835. P := .p        # Pascal
  836. S := .s        # Assembler sources
  837. V := ,v        # RCS suffix
  838. X
  839. # Recipe execution configurations
  840. SHELL        := /bin/sh
  841. SHELLFLAGS    := -ce
  842. GROUPSHELL    := $(SHELL)
  843. GROUPFLAGS    := 
  844. SHELLMETAS    := |();&<>?*][$$:\\#`'"
  845. GROUPSUFFIX    :=
  846. X
  847. # Standard C-language command names and flags
  848. X   CPP       := /lib/cpp        # C-preprocessor
  849. X   CC      := cc        # C-compiler and flags
  850. X   CFLAGS   =
  851. X
  852. X   AS      := as        # Assembler and flags
  853. X   ASFLAGS  = 
  854. X
  855. X   LD       = $(CC)        # Loader and flags
  856. X   LDFLAGS  =
  857. X   LDLIBS   =
  858. X
  859. # Definition of $(MAKE) macro for recursive makes.
  860. X   MAKE = $(MAKECMD) $(MFLAGS)
  861. X
  862. # Definition of Print command for this system.
  863. X   PRINT = lp
  864. X
  865. # Language and Parser generation Tools and their flags
  866. X   YACC      := yacc        # standard yacc
  867. X   YFLAGS  =
  868. X   YTAB      := y.tab        # yacc output files name stem.
  869. X
  870. X   LEX      := lex        # standard lex
  871. X   LFLAGS  =
  872. X   LEXYY  := lex.yy        # lex output file
  873. X
  874. # Other Compilers, Tools and their flags
  875. X   PC    := pc            # pascal compiler
  876. X   RC    := f77            # ratfor compiler
  877. X   FC    := f77            # fortran compiler
  878. X
  879. X   CO       := co        # check out for RCS
  880. X   COFLAGS := -q
  881. X
  882. X   AR     := ar            # archiver
  883. X   ARFLAGS = -rv
  884. X
  885. X   RM       := /bin/rm        # remove a file command
  886. X   RMFLAGS  =
  887. X
  888. # Implicit generation rules for making inferences.
  889. # We don't provide .yr or .ye rules here.  They're obsolete.
  890. # Rules for making *$O
  891. X   %$O : %.c ; $(CC) $(CFLAGS) -c $<
  892. X   %$O : %$P ; $(PC) $(PFLAGS) -c $<
  893. X   %$O : %$S ; $(AS) $(ASFLAGS) -o $@ $<
  894. X   %$O : %.cl ; class -c $<
  895. X   %$O : %.e %.r %.f %.F %$F
  896. X    $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $<
  897. X
  898. # Executables
  899. X   %$E : %$O ; $(CC) $(LDFLAGS) -o $@ $< $(LDLIBES)
  900. X   %$E : %.sh; cp $< $@; chmod 0777 $@
  901. X
  902. # lex and yacc rules
  903. X   %.c : %.y %.Y ; $(YACC)  $(YFLAGS) $<; mv $(YTAB).c $@
  904. X   %.c : %.l %.L ; $(LEX)   $(LFLAGS) $<; mv $(LEXYY).c $@
  905. X
  906. # This rule tells how to make *.out from it's immediate list of prerequisites
  907. # UNIX only.
  908. X   %.out :; $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
  909. X
  910. # RCS support
  911. .IF $(_HAVE_RCS)
  912. X   % : %$V $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@
  913. X   .NOINFER : %$V $$(@:d)RCS/$$(@:f)$V
  914. .END
  915. X
  916. # SCCS support
  917. .IF $(_HAVE_SCCS)
  918. X   GET = get
  919. X   GFLAGS =
  920. X   % : s.% ; $(GET) $(GFLAGS) $<
  921. X   .NOINFER : s.%
  922. .END
  923. X
  924. # Recipe to make archive files.
  925. %$A :
  926. [
  927. X   $(AR) $(ARFLAGS) $@ $?
  928. X   $(RM) $(RMFLAGS) $?
  929. ]
  930. X
  931. # DMAKE uses this recipe to remove intermediate targets
  932. .REMOVE :; $(RM) -f $<
  933. X
  934. # AUGMAKE extensions for SYSV compatibility
  935. @B = $(@:b)
  936. @D = $(@:d)
  937. @F = $(@:f)
  938. "*B" = $(*:b)
  939. "*D" = $(*:d)
  940. "*F" = $(*:f)
  941. <B = $(<:b)
  942. <D = $(<:d)
  943. <F = $(<:f)
  944. ?B = $(?:b)
  945. ?F = $(?:f)
  946. ?D = $(?:d)
  947. X
  948. # Turn warnings back to previous setting.
  949. .SILENT := $(__.SILENT)
  950. X
  951. # Local startup file if any
  952. .INCLUDE .IGNORE: "_startup.mk"
  953. SHAR_EOF
  954. chmod 0640 dmake/unix/xenix/startup.mk ||
  955. echo 'restore of dmake/unix/xenix/startup.mk failed'
  956. Wc_c="`wc -c < 'dmake/unix/xenix/startup.mk'`"
  957. test 3285 -eq "$Wc_c" ||
  958.     echo 'dmake/unix/xenix/startup.mk: original size 3285, current size' "$Wc_c"
  959. rm -f _shar_wnt_.tmp
  960. fi
  961. # ============= dmake/unix/xenix/stdarg.h ==============
  962. if test -f 'dmake/unix/xenix/stdarg.h' -a X"$1" != X"-c"; then
  963.     echo 'x - skipping dmake/unix/xenix/stdarg.h (File already exists)'
  964.     rm -f _shar_wnt_.tmp
  965. else
  966. > _shar_wnt_.tmp
  967. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/stdarg.h' &&
  968. /*
  969. X * stdarg.h
  970. X *
  971. X * defines ANSI style macros for accessing arguments of a function which takes
  972. X * a variable number of arguments
  973. X *
  974. X */
  975. X
  976. #if !defined(__STDARG_H__)
  977. #define __STDARG_H__
  978. X
  979. #if !defined(_VA_LIST_) && !defined(_VA_LIST)
  980. #define _VA_LIST_
  981. #define _VA_LIST
  982. typedef char *va_list;
  983. #endif
  984. X
  985. #define va_dcl int va_alist
  986. #define va_start(ap,v)  ap = (va_list)&va_alist
  987. #define va_arg(ap,t)    ((t*)(ap += sizeof(t)))[-1]
  988. #define va_end(ap)      ap = NULL
  989. #endif
  990. SHAR_EOF
  991. chmod 0640 dmake/unix/xenix/stdarg.h ||
  992. echo 'restore of dmake/unix/xenix/stdarg.h failed'
  993. Wc_c="`wc -c < 'dmake/unix/xenix/stdarg.h'`"
  994. test 469 -eq "$Wc_c" ||
  995.     echo 'dmake/unix/xenix/stdarg.h: original size 469, current size' "$Wc_c"
  996. rm -f _shar_wnt_.tmp
  997. fi
  998. # ============= dmake/unix/xenix/stdlib.h ==============
  999. if test -f 'dmake/unix/xenix/stdlib.h' -a X"$1" != X"-c"; then
  1000.     echo 'x - skipping dmake/unix/xenix/stdlib.h (File already exists)'
  1001.     rm -f _shar_wnt_.tmp
  1002. else
  1003. > _shar_wnt_.tmp
  1004. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/stdlib.h' &&
  1005. #ifndef _STDLIB_INCLUDED_
  1006. #define _STDLIB_INCLUDED_
  1007. X
  1008. extern /*GOTO*/ _exit();
  1009. extern /*GOTO*/ exit();
  1010. extern /*GOTO*/ abort();
  1011. extern int system();
  1012. extern char *getenv();
  1013. extern char *calloc();
  1014. extern char *malloc();
  1015. extern char *realloc();
  1016. X
  1017. #ifndef _AIX
  1018. /* The AIX compiler dies on illegal redefinition of free */
  1019. extern free();
  1020. #endif
  1021. X
  1022. extern int errno;
  1023. X
  1024. #ifndef EIO
  1025. #    include <errno.h>
  1026. #endif
  1027. X
  1028. #endif /* _STDLIB_INCLUDED_ */
  1029. SHAR_EOF
  1030. chmod 0640 dmake/unix/xenix/stdlib.h ||
  1031. echo 'restore of dmake/unix/xenix/stdlib.h failed'
  1032. Wc_c="`wc -c < 'dmake/unix/xenix/stdlib.h'`"
  1033. test 428 -eq "$Wc_c" ||
  1034.     echo 'dmake/unix/xenix/stdlib.h: original size 428, current size' "$Wc_c"
  1035. rm -f _shar_wnt_.tmp
  1036. fi
  1037. # ============= dmake/unix/xenix/time.h ==============
  1038. if test -f 'dmake/unix/xenix/time.h' -a X"$1" != X"-c"; then
  1039.     echo 'x - skipping dmake/unix/xenix/time.h (File already exists)'
  1040.     rm -f _shar_wnt_.tmp
  1041. else
  1042. > _shar_wnt_.tmp
  1043. sed 's/^X//' << 'SHAR_EOF' > 'dmake/unix/xenix/time.h' &&
  1044. /*
  1045. ** Berkeley get this wrong!
  1046. */
  1047. #ifndef    TIME_h
  1048. #define    TIME_h
  1049. X
  1050. typedef    long    time_t;    /* this is the thing we use */
  1051. X
  1052. #endif    TIME_h
  1053. X
  1054. SHAR_EOF
  1055. chmod 0640 dmake/unix/xenix/time.h ||
  1056. echo 'restore of dmake/unix/xenix/time.h failed'
  1057. Wc_c="`wc -c < 'dmake/unix/xenix/time.h'`"
  1058. test 133 -eq "$Wc_c" ||
  1059.     echo 'dmake/unix/xenix/time.h: original size 133, current size' "$Wc_c"
  1060. rm -f _shar_wnt_.tmp
  1061. fi
  1062. # ============= dmake/version.h ==============
  1063. if test -f 'dmake/version.h' -a X"$1" != X"-c"; then
  1064.     echo 'x - skipping dmake/version.h (File already exists)'
  1065.     rm -f _shar_wnt_.tmp
  1066. else
  1067. > _shar_wnt_.tmp
  1068. sed 's/^X//' << 'SHAR_EOF' > 'dmake/version.h' &&
  1069. /* dmake version number.  */
  1070. X
  1071. #define VERSION "3.80"
  1072. SHAR_EOF
  1073. chmod 0640 dmake/version.h ||
  1074. echo 'restore of dmake/version.h failed'
  1075. Wc_c="`wc -c < 'dmake/version.h'`"
  1076. test 53 -eq "$Wc_c" ||
  1077.     echo 'dmake/version.h: original size 53, current size' "$Wc_c"
  1078. rm -f _shar_wnt_.tmp
  1079. fi
  1080. # ============= dmake/vextern.h ==============
  1081. if test -f 'dmake/vextern.h' -a X"$1" != X"-c"; then
  1082.     echo 'x - skipping dmake/vextern.h (File already exists)'
  1083.     rm -f _shar_wnt_.tmp
  1084. else
  1085. > _shar_wnt_.tmp
  1086. sed 's/^X//' << 'SHAR_EOF' > 'dmake/vextern.h' &&
  1087. /* RCS      -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/vextern.h,v 1.1 1992/01/24 03:27:19 dvadura Exp $
  1088. -- SYNOPSIS -- global variable declarations.
  1089. -- 
  1090. -- DESCRIPTION
  1091. --     Leave _DEFINE_GLOBALS_ undefined and the following declarations
  1092. --    will be defined as global variables, otherwise you get the
  1093. --    external declarations to the same global variables.
  1094. --
  1095. -- AUTHOR
  1096. --      Dennis Vadura, dvadura@watdragon.uwaterloo.ca
  1097. --      CS DEPT, University of Waterloo, Waterloo, Ont., Canada
  1098. --
  1099. -- COPYRIGHT
  1100. --      Copyright (c) 1990 by Dennis Vadura.  All rights reserved.
  1101. -- 
  1102. --      This program is free software; you can redistribute it and/or
  1103. --      modify it under the terms of the GNU General Public License
  1104. --      (version 1), as published by the Free Software Foundation, and
  1105. --      found in the file 'LICENSE' included with this distribution.
  1106. -- 
  1107. --      This program is distributed in the hope that it will be useful,
  1108. --      but WITHOUT ANY WARRANTY; without even the implied warrant of
  1109. --      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1110. --      GNU General Public License for more details.
  1111. -- 
  1112. --      You should have received a copy of the GNU General Public License
  1113. --      along with this program;  if not, write to the Free Software
  1114. --      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1115. --
  1116. -- LOG
  1117. --     $Log: vextern.h,v $
  1118. X * Revision 1.1  1992/01/24  03:27:19  dvadura
  1119. X * dmake Version 3.8, Initial revision
  1120. X *
  1121. */
  1122. /* These two are defined in dir/ruletab.c and dir/dirbrk.c, and are always
  1123. X * imported as externals by the other code.  Their defining modules do not
  1124. X * #include this file. */
  1125. extern    char*    DirBrkStr;    /* pointer to value of macro DIRBRKSTR    */
  1126. extern    char**    Rule_tab;    /* Builtin rules */
  1127. #ifndef _DEFINE_GLOBALS_
  1128. #define EXTERN    extern
  1129. #else
  1130. #define EXTERN
  1131. #endif
  1132. EXTERN    int    Line_number;    /* Current line number in make file parse */
  1133. EXTERN    t_attr    Glob_attr;    /* Global attrs to control global ops     */
  1134. EXTERN    char*    Prep;        /* Value of macro PREP              */
  1135. EXTERN    char*    Makedir;    /* pointer to macro value for MAKEDIR     */
  1136. EXTERN    char*     Start_dir;    /* cell for   macro value for .SETDIR      */
  1137. EXTERN    char*    Shell;        /* pointer to macro value for SHELL       */
  1138. EXTERN    char*    Shell_flags;    /* pointer to macro value for SHELLFLAGS  */
  1139. EXTERN    char*    GShell;        /* pointer to macro value for GROUPSHELL  */
  1140. EXTERN    char*    GShell_flags;    /* pointer to macro value for GROUPFLAGS  */
  1141. EXTERN    char*    Shell_metas;    /* pointer to macro value for SHELLMETAS  */
  1142. EXTERN    char*    Grp_suff;    /* pointer to macro value for GROUPSUFFIX */
  1143. EXTERN  char*   DirSepStr;    /* pointer to macro value for DIRSEPSTR   */
  1144. EXTERN    char*    Pname;        /* dmake process invoke name              */
  1145. EXTERN    char*    Pwd;        /* current working dir, value of PWD      */
  1146. EXTERN    char*    Tmd;        /* path to directory where dmake started  */
  1147. EXTERN    char*    Keep_state;    /* current .KEEP_STATE file          */
  1148. EXTERN  char*   Escape_char;    /* Current escape character               */
  1149. EXTERN    int    Target;        /* TRUE if target found in makefile       */
  1150. EXTERN    int    If_expand;    /* TRUE if calling Expand from getinp.c   */
  1151. EXTERN  int    If_multi;    /* M_MULTI for expand of single MULTI macs*/
  1152. EXTERN  int    Suppress_temp_file;/* TRUE if doing a test in _exec_recipe   */
  1153. EXTERN    int    Readenv;    /* TRUE if defining macro from environment*/
  1154. EXTERN    int    Makemkf;    /* TRUE if making makefile(s)          */
  1155. EXTERN    int    Nest_level;    /* Nesting level for .IF .ELSE .END ...   */
  1156. EXTERN    int    Def_targets;    /* TRUE if defining targets          */
  1157. EXTERN  CELLPTR Root;        /* Root of the make graph          */
  1158. EXTERN  CELLPTR Current_target; /* cell of current target being made      */
  1159. EXTERN  int    Wait_for_completion;
  1160. EXTERN  int    Doing_bang;
  1161. EXTERN  int    Packed_shell;    /* TRUE if packed args to use a shell      */
  1162. EXTERN  int    Swap_on_exec;    /* TRUE if going to swap on exec call     */
  1163. EXTERN  int    State;        /* parser state                  */
  1164. EXTERN  int    Group;        /* parsing a group recipe ==> TRUE        */
  1165. /* Command line option flags are defined here.  They correspond one-for one
  1166. X * with the flags defined in dmake.c */
  1167. EXTERN    char    *Augmake;    /* -A */
  1168. EXTERN  char    Comment;    /* -c */
  1169. EXTERN    char    Get_env;    /* -e or -E */
  1170. EXTERN  char*   Notabs;        /* -B */
  1171. EXTERN    int    Continue;    /* -k */
  1172. EXTERN    int    Force;        /* -u */
  1173. EXTERN    int    Listing;    /* -p */
  1174. EXTERN    int    Rules;        /* -r */
  1175. EXTERN    int    Trace;        /* -n */
  1176. EXTERN    int    Touch;        /* -t */
  1177. EXTERN    int    Check;        /* -q */
  1178. EXTERN    uint16    Verbose;    /* -v */
  1179. EXTERN    int    Microsoft;    /* -M */
  1180. EXTERN    int    Transitive;    /* -T */
  1181. EXTERN    HASHPTR    Macs[HASH_TABLE_SIZE];    /* hash table for macro defs    */
  1182. EXTERN    HASHPTR    Defs[HASH_TABLE_SIZE];    /* hash table for other defs    */
  1183. EXTERN    char    *Buffer;        /* a general purpose buffer     */
  1184. EXTERN  int    Buffer_size;
  1185. EXTERN  int    Max_proclmt;        /* limit of max # of conc procs */
  1186. EXTERN    int    Max_proc;        /* max # of conc procs        */
  1187. SHAR_EOF
  1188. chmod 0640 dmake/vextern.h ||
  1189. echo 'restore of dmake/vextern.h failed'
  1190. Wc_c="`wc -c < 'dmake/vextern.h'`"
  1191. test 4831 -eq "$Wc_c" ||
  1192.     echo 'dmake/vextern.h: original size 4831, current size' "$Wc_c"
  1193. rm -f _shar_wnt_.tmp
  1194. fi
  1195. # ============= dmake/LICENSE ==============
  1196. if test -f 'dmake/LICENSE' -a X"$1" != X"-c"; then
  1197.     echo 'x - skipping dmake/LICENSE (File already exists)'
  1198.     rm -f _shar_wnt_.tmp
  1199. else
  1200. > _shar_wnt_.tmp
  1201. sed 's/^X//' << 'SHAR_EOF' > 'dmake/LICENSE' &&
  1202. X            GNU GENERAL PUBLIC LICENSE
  1203. X             Version 1, February 1989
  1204. X
  1205. X Copyright (C) 1989 Free Software Foundation, Inc.
  1206. X                    675 Mass Ave, Cambridge, MA 02139, USA
  1207. X Everyone is permitted to copy and distribute verbatim copies
  1208. X of this license document, but changing it is not allowed.
  1209. X
  1210. X                Preamble
  1211. X
  1212. X  The license agreements of most software companies try to keep users
  1213. at the mercy of those companies.  By contrast, our General Public
  1214. License is intended to guarantee your freedom to share and change free
  1215. software--to make sure the software is free for all its users.  The
  1216. General Public License applies to the Free Software Foundation's
  1217. software and to any other program whose authors commit to using it.
  1218. You can use it for your programs, too.
  1219. X
  1220. X  When we speak of free software, we are referring to freedom, not
  1221. price.  Specifically, the General Public License is designed to make
  1222. sure that you have the freedom to give away or sell copies of free
  1223. software, that you receive source code or can get it if you want it,
  1224. that you can change the software or use pieces of it in new free
  1225. programs; and that you know you can do these things.
  1226. X
  1227. X  To protect your rights, we need to make restrictions that forbid
  1228. anyone to deny you these rights or to ask you to surrender the rights.
  1229. These restrictions translate to certain responsibilities for you if you
  1230. distribute copies of the software, or if you modify it.
  1231. X
  1232. X  For example, if you distribute copies of a such a program, whether
  1233. gratis or for a fee, you must give the recipients all the rights that
  1234. you have.  You must make sure that they, too, receive or can get the
  1235. source code.  And you must tell them their rights.
  1236. X
  1237. X  We protect your rights with two steps: (1) copyright the software, and
  1238. SHAR_EOF
  1239. true || echo 'restore of dmake/LICENSE failed'
  1240. fi
  1241. echo 'End of part 40, continue with part 41'
  1242. echo 41 > _shar_seq_.tmp
  1243. exit 0
  1244. exit 0 # Just in case...
  1245.